import request from '../utils/request'

/**
 * 更新用户密码
 * @param {Object} data - 密码信息
 * @returns {Promise}
 */
export function updatePassword(data) {
  return request({
    url: '/users/password',
    method: 'put',
    data
  })
}

/**
 * 绑定邮箱
 * @param {Object} data - 邮箱信息
 * @returns {Promise}
 */
export function bindEmail(data) {
  return request({
    url: '/users/email',
    method: 'put',
    data
  })
}

/**
 * 获取用户设置
 * @returns {Promise}
 */
export function getUserSettings() {
  return request({
    url: '/user-settings',
    method: 'get'
  })
}

/**
 * 更新用户设置
 * @param {Object} data - 用户设置信息
 * @returns {Promise}
 */
export function updateUserSettings(data) {
  return request({
    url: '/user-settings',
    method: 'put',
    data
  })
}

/**
 * 更新通知设置
 * @param {String} type - 通知类型 (answer/comment/accept/like)
 * @param {Boolean} enabled - 是否启用
 * @returns {Promise}
 */
export function updateNotificationSetting(type, enabled) {
  return request({
    url: `/user-settings/notifications/${type}`,
    method: 'put',
    params: { enabled }
  })
}

/**
 * 更新隐私设置
 * @param {String} type - 隐私设置类型 (online_status/messages)
 * @param {Boolean} enabled - 是否启用
 * @returns {Promise}
 */
export function updatePrivacySetting(type, enabled) {
  return request({
    url: `/user-settings/privacy/${type}`,
    method: 'put',
    params: { enabled }
  })
}

/**
 * 更新界面设置
 * @param {Boolean} darkMode - 是否启用深色模式
 * @param {String} language - 语言设置
 * @returns {Promise}
 */
export function updateInterfaceSettings(darkMode, language) {
  return request({
    url: '/user-settings/interface',
    method: 'put',
    params: { 
      darkMode, 
      language 
    }
  })
}

/**
 * 重置用户设置
 * @returns {Promise}
 */
export function resetUserSettings() {
  return request({
    url: '/user-settings/reset',
    method: 'post'
  })
}

/**
 * 上传头像
 * @param {FormData} data - 图片文件表单数据
 * @returns {Promise}
 */
export function uploadAvatar(data) {
  return request({
    url: '/upload/avatar',
    method: 'post',
    data,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
} 